﻿package com.eitb.programas.ticker{
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import flash.utils.*;

	import flash.filters.BlurFilter;

	import com.eitb.bitmaps.*;
	import com.eitb.literales.*;
	import com.eitb.programas.ticker.rutas.*;
	import com.eitb.programas.ticker.properties.*;

	public class Main extends Sprite {
		private static var vTicker:DisplayObject;
		private var xml:XML;

//		private var clasificaciones:Array= new Array();
//		private var clasificaciones:String=loaderInfo.parameters.clasificaciones;
//		private var idiomaRetrived:String=loaderInfo.parameters.idioma;
//		private var transicion:String=loaderInfo.parameters.transicion;
//		private var formato:String=loaderInfo.parameters.formato;
//		private var estilo:String=loaderInfo.parameters.estilo;
//		private var icono:String=loaderInfo.parameters.icono;

		private var idiomaRetrived:String="eu"; // es, en, eu, fr
		private var transicion:String="cortinilla"; // cortinilla, desvanecer, volar, disolver
		private var formato:String="tortolika"; //simpleUnaColumna, simpleDosColumnas, tortolika
		private var icono:String="eitb"; // eitb, pajaro
		private var estilo:String="digital"; // simple, digital
		private var clasificaciones:Array= new Array("/eitbcom/secciones/actualidad/politica","/eitbcom/secciones/actualidad/sociedad","/eitbcom/secciones/actualidad/internacional",
													 "/eitbcom/secciones/actualidad/economia", "/eitbcom/secciones/actualidad/politica/a_fondo", "/eitbcom/secciones/actualidad/curiosidades",
													 "/eitbcom/secciones/actualidad/tecnologia"
													 );

		private var idioma:int;

		public function Main():void {
			trace("Main");
			// transforma el idioma recibido al codigo correcto de idioma en flash
			this.idioma = Literales.getIdiomaId(this.idiomaRetrived);
			
			// comienza la carga de los datos del XML //CAMBIAME
			this.loadClasificaciones();
		}

		// CARGA XML
		private function loadClasificaciones():void {
			trace("loadClasificaciones");
			var loader:URLLoader;
			loader = new URLLoader();
			loader.addEventListener(Event.COMPLETE, completeHandler);
			try {
				loader.load(new Rutas().getXml(this.idiomaRetrived));
			} catch (error:Error) {
			}
		}
		private function completeHandler(event:Event):void {
			trace("completeHandler");
			// guarda los datos del xml
			this.xml=new XML(URLLoader(event.target).data);
			this.init(this.xml..categoria);
		}
		// CARGA XML

		// Ticker
		private function init(xml:XMLList):void {
			trace("init");
			var timer:Timer = new Timer(4000, 0);
			
			var dialogo:DialogoTicker = new DialogoTicker();
			var modelo:ModeloTicker = new ModeloTicker();

			// almacena las vistas para trabajar con ellas si es necesario
			Main.vTicker=dialogo;

			// pone en pantalla el programa
			this.addChild(dialogo);

			// enlaza la aplicacion de Ticker
			dialogo.initControlador(modelo);
			modelo.initVista(dialogo);

			// inicia las propiedades
			dialogo.initFormato(StagePropertiesFactory.getFormato(this.formato));
			dialogo.initTexto(StagePropertiesFactory.getFormato(this.formato), TextPropertiesFactory.getEstilo(this.estilo));
			modelo.initIcono(IconoFactory.getIcono(this.icono), StagePropertiesFactory.getFormato(this.formato));

			// inicializa las variables 
			dialogo.initEvents();
			dialogo.initNextNewTimerEvent(timer);
			modelo.initNextNewTimer(timer);
			modelo.initIdioma(this.idioma);
			modelo.initClasificacionesXml(xml);
			modelo.initClasificaciones(this.clasificaciones);
			modelo.initTransition(TransitionPropertiesFactory.getTransition(this.transicion));
			
			modelo.start();
		}
		// Ticker
	}
}